package cn.disicn.util;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 * @Description:发送邮件
 * @author: Luyao
 */
public class EmailUtil {

	private static Logger log = LoggerFactory.getLogger(EmailUtil.class);

	/**
	 * 邮件发送的核心配置
	 * 
	 * @param host
	 * @param user
	 * @param pwd
	 */
	private static Integer code;

	public static Integer sendEmail(String emailAddress, String type) throws Exception {
		Properties prop = new Properties();
		// 设置邮件服务器主机名
		prop.setProperty("mail.host", "smtp.ym.163.com");
		// 发送服务器需要身份验证
		prop.setProperty("mail.smtp.auth", "true");
		// 发送邮件协议名称
		prop.setProperty("mail.transport.protocol", "smtp");

		// 创建session
		Session session = Session.getInstance(prop);
		// 通过session得到transport对象
		Transport ts = session.getTransport();
		// 连接邮件服务器：邮箱类型，帐号，授权码代替密码（更安全）
		ts.connect("smtp.ym.163.com", "ljc@disicn.cn", "");// 后面的字符是授权码或密码
		// 创建邮件
		code = (int) ((Math.random() * 9 + 1) * 100000);
		Message message = createBindAccountMail(session, emailAddress);
		// 发送邮件
		ts.sendMessage(message, message.getAllRecipients());
		ts.close();
		log.info("emailAddress:" + emailAddress + "code:" + code);
		return code;
	}

	/**
	 * 
	 * @Description:注册时发送验证码
	 * @date: 2017年9月22日 下午3:13:18
	 * @param session
	 * @param emailAddress
	 * @return
	 * @throws Exception
	 */
	private static MimeMessage createBindAccountMail(Session session, String emailAddress) throws Exception {
		// 创建邮件对象
		MimeMessage message = new MimeMessage(session);
		// 指明邮件的发件人
		message.setFrom(new InternetAddress("ljc@disicn.cn"));
		// 指明邮件的收件人
		message.setRecipient(Message.RecipientType.TO, new InternetAddress(emailAddress));
		// 邮件的标题
		message.setSubject("绑定外咖APP任务分发平台账号");
		// 邮件的文本内容
		String content = "【深圳帝斯科技有限公司】验证码：" + code + "，您正在绑定外咖APP任务分发平台账号，如非本人操作，请忽略此邮件。";
		message.setContent(content, "text/html;charset=UTF-8");
		// 返回创建好的邮件对象
		return message;
	}

}
